/**
 * 1、执行构造函数
 * 2、当函数返回结果是对象时，则返回该对象
 * 3、当函数返回结果不是对象时，则返回该构造函数的实例化对象
 * @param {*} fn 
 * @param  {...any} args 
 * @returns 
 */
function _new(fn, ...args) {
    const obj = Object.create(fn.prototype)
    const result = fn.apply(obj, args)
    return result instanceof Object ? result : obj
}
